import csv
import pandas as pd
import xlrd
import numpy as np
import openpyxl
from matplotlib import pyplot as plt
from matplotlib import font_manager
import random


plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']

df = pd.read_excel('3.xlsx', sheet_name='1', usecols=[0, 3, 6, 8, 10])

height, width = df.shape

# 01-02 03-04  05 06-11 12-15 16-19 20-21
ks=[2497,3215,3458,3700,5159,6129,7104]
js=[3214,3257,3699,5158,6128,7103,7589]

jd=['01-02', '03-04',  '05', '06-11', '12-15', '16-19', '20-21']


#原始数据
ozz=[]
obp=[]
ozzz=[]
ohb=[]

#收益率
zz=[]
bp=[]
zzz=[]
hb=[]

#收益率标准差
stdzz=[]
stdbp=[]
stdzzz=[]
stdhb=[]

#夏普比率
xpzz=[]
xpbp=[]
xpzzz=[]
xphb=[]

x=np.zeros((height, width))

for i in range(2, height):
    for j in range(1, width):
        x[i-2][j] = df.values[i, j]

for i in range(2, height):
    ozz.append(df.values[i, 1])
    obp.append(df.values[i, 2])
    ozzz.append(df.values[i, 3])
    ohb.append(df.values[i, 4])

for k in range(0,7):
    stdzz.append(np.std(ozz[ks[k]:js[k]], ddof=1))
    stdbp.append(np.std(obp[ks[k]:js[k]], ddof=1))
    stdzzz.append(np.std(ozzz[ks[k]:js[k]], ddof=1))
    stdhb.append(np.std(ohb[ks[k]:js[k]], ddof=1))










#中证500 预期总收益率

for k in range(0, 7):
    # for j in range(0, 5):
    tmp = 0
    for i in range(ks[k] + 1, js[k]):
        tmp = tmp + (x[i][1] - x[i - 1][1])
    res=tmp / (js[k] - ks[k])
    zz.append(res)
    # print(res)

#标普高盛商品全收益指数 预期总收益率

for k in range(0, 7):
    # for j in range(0, 5):
    tmp = 0
    for i in range(ks[k] + 1, js[k]):
        tmp = tmp + (x[i][2] - x[i - 1][2])
    res = tmp / (js[k] - ks[k])
    bp.append(res)
    # print(res)

#中债-综合财富(3-5年)指数 预期总收益率

for k in range(0, 7):
    # for j in range(0, 5):
    tmp = 0
    for i in range(ks[k] + 1, js[k]):
        tmp = tmp + (x[i][3] - x[i - 1][3])
    res = tmp / (js[k] - ks[k])
    zzz.append(res)
    # print(res)

#货币基金 预期总收益率

for k in range(0, 7):
    # for j in range(0, 5):
    tmp = 0
    for i in range(ks[k] + 1, js[k]):
        tmp = tmp + (x[i][4] - x[i - 1][4])
    res = tmp / (js[k] - ks[k])
    hb.append(res)
    # print(res)

# print(x.shape)

plt.figure(1)
plt.title('不同经济状态的预期收益率')
plt.xlabel('时间')
plt.plot( jd,zz, label='中证500')
plt.plot( jd,bp, label='标普高盛商品全收益指数')
plt.plot( jd,zzz, label='中债-综合财富(3-5年)指数')
plt.plot( jd, hb, label='货币基金')
plt.legend()
#plt.grid()
plt.savefig("./预期收益率.jpg")
plt.show()

plt.figure(2)
plt.title('不同经济状态的预期收益率标准差')
plt.xlabel('时间')
plt.plot(jd, stdzz, label='中证500')
plt.plot(jd, stdbp, label='标普高盛商品全收益指数')
plt.plot(jd, stdzzz, label='中债-综合财富(3-5年)指数')
plt.plot(jd, stdhb, label='货币基金')
plt.legend()
# plt.grid()
plt.savefig("./预期收益率标准差.jpg")
plt.show()

for i in range(0, 7):

    xpzz.append(zz[i]/stdzz[i])
    xpbp.append(bp[i] / stdbp[i])
    xpzzz.append(zzz[i] / stdzzz[i])
    xphb.append(hb[i] / stdhb[i])


plt.figure(3)
plt.title('不同经济状态的夏普比率')
plt.xlabel('时间')
plt.plot(jd, xpzz, label='中证500')
plt.plot(jd, xpbp, label='标普高盛商品全收益指数')
plt.plot(jd, xpzzz, label='中债-综合财富(3-5年)指数')
plt.plot(jd, xphb, label='货币基金')
plt.legend()
# plt.grid()
plt.savefig("./夏普比率.jpg")
plt.show()


print("中证500 预期总收益率：")
print(zz)
print("标普高盛商品全收益指数 预期总收益率：")
print(bp)
print("中债-综合财富(3-5年)指数 预期总收益率：")
print(zzz)
print("货币基金 预期总收益率：")
print(hb)

print("中证500 预期总收益率标准差：")
print(stdzz)
print("标普高盛商品全收益指数 预期总收益率标准差：")
print(stdbp)
print("中债-综合财富(3-5年)指数 预期总收益率标准差：")
print(stdzzz)
print("货币基金 预期总收益率标准差：")
print(stdhb)

print("中证500 夏普比率：")
print(xpzz)
print("标普高盛商品全收益指数 夏普比率：")
print(xpbp)
print("中债-综合财富(3-5年)指数 夏普比率：")
print(xpzzz)
print("货币基金 夏普比率：")
print(xphb)


